<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>运算符</title>
  </head>
  <body>
    <script>
      //T1
      //3 + 2 +“7”的结果是什么？3 + (2 + "7")的结果又是什么？这两个表达式输出的值是什么类型？   
      //答：57；输出的是string类型
      //    327;输出的是也string类型


      //T2
      //6 - false的结果是什么？为什么
      //答：6；number与boolean一起进行运算的时候，boolear会自动转化为number，false的number值是0，6-0=6；


      //T3
      //6 - "false"和6 + "false"的结果分别是什么？结果输出值是什么数据类型？
      //答：1.NaN,输出值是number类型，‘-’不会被视为string连接符，所以按照number的规则进行输出，含有非数字字符，输出：NaN
      //    2.6false,输出值是string类型，‘+’会被string视为连接符；
      


      //T4
      //下面代码分别输出什么？请写出分析过程
      
      var a = 1;
      var b = ++a + ++a;
      //答：a输出1
      //    b输出5，b=自增a+自增a，第一个a自增完之后是2，接着轮到第二个a，继承了第一个a的自增基础上，再进行一次自增（2+1），2+3=5；


      //T5
      //JS中哪些值通过Boolean对象转换出来的值为false
      //答：0, NaN, undefined, ''，null


      //T6
      //分析下面代码，写出分析过程，请问 j 和 y 分别是多少？(不要运行代码，自己分析后写出答案)
      var i = 100;
      i++;//101
      j = i++;//102
      y = ++j;//102
      console.log(y);
      console.log(j);
      //答：j=102,i第一次自增之后是101，然后j=i++,进行i的第二次自增，所以j=102
      //    y=102,j的102是在引入i（101）之后自增，从而获得102，所以y在引入j的时候是一个自增过一次的i（101），然后再进行一次自增，获得102
    </script>
  </body>
</html>
